import { MappingData } from './MappingData'
import { gltfMapping } from '../Utils/Mars3dParams'


// !!! 通用元素基础信息 STYLE
const scaleByDistanceMapping__STYLE = [
    { span: 24, formType: 'RADIO', name: ['style', 'highDyscaleByDistancenamicRange'], label: '视距缩放', valueEnum: MappingData.IsEnabledBool },
    {
        span: 24, formType: 'NUMBER', name: ['style', 'scaleByDistance_far'], label: '视距上限', rules: true, min: 0, max: 1000000, step: 1,
        jugdeField: ['style', 'highDyscaleByDistancenamicRange'], jugdeValue: [true]
    },
    {
        span: 24, formType: 'NUMBER', name: ['style', 'scaleByDistance_farValue'], label: '上限比例', rules: true, min: 0, max: 1, step: 0.1,
        jugdeField: ['style', 'highDyscaleByDistancenamicRange'], jugdeValue: [true]
    },
    {
        span: 24, formType: 'NUMBER', name: ['style', 'scaleByDistance_near'], label: '视距下限', rules: true, min: 0, max: 1000000, step: 1,
        jugdeField: ['style', 'highDyscaleByDistancenamicRange'], jugdeValue: [true]
    },
    {
        span: 24, formType: 'NUMBER', name: ['style', 'scaleByDistance_nearValue'], label: '下限比例', rules: true, min: 0, max: 1, step: 0.1,
        jugdeField: ['style', 'highDyscaleByDistancenamicRange'], jugdeValue: [true]
    },
]

const distanceDisplayConditionMapping__STYLE = [
    { span: 24, formType: 'RADIO', name: ['style', 'distanceDisplayCondition'], label: '视距显示', valueEnum: MappingData.IsEnabledBool },
    {
        span: 24, formType: 'NUMBER', name: ['style', 'distanceDisplayCondition_far'], label: '最大距离', rules: true, min: 0, max: 1000000, step: 1,
        jugdeField: ['style', 'distanceDisplayCondition'], jugdeValue: [true]
    },
    {
        span: 24, formType: 'NUMBER', name: ['style', 'distanceDisplayCondition_near'], label: '最小距离', rules: true, min: 0, max: 1000000, step: 1,
        jugdeField: ['style', 'distanceDisplayCondition'], jugdeValue: [true]
    }
]

const hasPixelOffsetMapping__STYLE = [
    { span: 24, formType: 'RADIO', name: ['style', 'hasPixelOffset'], label: '是否偏移', valueEnum: MappingData.IsEnabledBool },
    {
        span: 24, formType: 'NUMBER', name: ['style', 'pixelOffsetX'], label: '横向偏移', rules: true,
        jugdeField: ['style', 'hasPixelOffset'], jugdeValue: [true]
    },
    {
        span: 24, formType: 'NUMBER', name: ['style', 'pixelOffsetY'], label: '纵向偏移', rules: true,
        jugdeField: ['style', 'hasPixelOffset'], jugdeValue: [true]
    }
]

const label__STYLE = [
    { formType: 'TempTitle', label: '文字属性', name: 'label__STYLE' },
    { span: 24, formType: 'INPUT', name: ['style', 'label', 'text'], label: '文字内容' },
    { span: 24, formType: 'NUMBER', name: ['style', 'label', 'scale'], label: '缩放比例', rules: true, min: 0, max: 10000, step: 0.1 },
    { span: 24, formType: 'COLOR', name: ['style', 'label', 'color'], label: '文字颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'label', 'font_size'], label: '文字字号', rules: true },
    { span: 24, formType: 'SELECT', name: ['style', 'label', 'font_family'], label: '文字字体', valueEnum: MappingData.Font__Family },
    { span: 24, formType: 'RADIO', name: ['style', 'label', 'font_weight'], label: '是否加粗', rules: true, valueEnum: MappingData.Font__WeightStr },
    { span: 24, formType: 'RADIO', name: ['style', 'label', 'font_style'], label: '是否斜体', rules: true, valueEnum: MappingData.Font__Style },
    { span: 24, formType: 'RADIO', name: ['style', 'label', 'fill'], label: '是否填充', rules: true, valueEnum: MappingData.IsYesBool },
    { span: 24, formType: 'RADIO', name: ['style', 'label', 'clampToGround'], label: '是否贴地', rules: true, valueEnum: MappingData.IsYesBool },
    { span: 24, formType: 'RADIO', name: ['style', 'label', 'visibleDepth'], label: '是否遮挡', rules: true, valueEnum: MappingData.IsYesBool },
    { span: 24, formType: 'RADIO', name: ['style', 'label', 'outline'], label: '是否衬色', rules: true, valueEnum: MappingData.IsYesBool },
    {
        span: 24, formType: 'COLOR', name: ['style', 'label', 'outlineColor'], label: '衬色颜色', rules: true,
        jugdeField: ['style', 'label', 'outline'], jugdeValue: [true]
    },
    {
        span: 24, formType: 'NUMBER', name: ['style', 'label', 'outlineWidth'], label: '衬色宽度', rules: true,
        jugdeField: ['style', 'label', 'outline'], jugdeValue: [true]
    },
    { span: 24, formType: 'RADIO', name: ['style', 'label', 'background'], label: '是否背景', rules: true, valueEnum: MappingData.IsYesBool },
    {
        span: 24, formType: 'COLOR', name: ['style', 'label', 'backgroundColor'], label: '背景颜色', rules: true,
        jugdeField: ['style', 'label', 'background'], jugdeValue: [true]
    },
    {
        span: 24, formType: 'NUMBER', name: ['style', 'label', 'backgroundPadding'], label: '背景内边距', rules: true,
        jugdeField: ['style', 'label', 'background'], jugdeValue: [true]
    },
    { span: 24, formType: 'RADIO', name: ['style', 'label', 'hasPixelOffset'], label: '是否偏移', valueEnum: MappingData.IsEnabledBool },
    {
        span: 24, formType: 'NUMBER', name: ['style', 'label', 'pixelOffsetX'], label: '横向偏移', rules: true,
        jugdeField: ['style', 'label', 'hasPixelOffset'], jugdeValue: [true]
    },
    {
        span: 24, formType: 'NUMBER', name: ['style', 'label', 'pixelOffsetY'], label: '纵向偏移', rules: true,
        jugdeField: ['style', 'label', 'hasPixelOffset'], jugdeValue: [true]
    }
]

// TODO 额外材质
const materialOptionsMapping = [
    { span: 24, formType: 'SELECT', name: ['style', 'materialType'], label: '元素材质', rules: true, valueEnum: MappingData.mars3d__materialType },

    // //  text
    // {
    //     span: 24, formType: 'INPUT', name: ['style', 'materialOptions', 'text'], label: '文字内容', rules: true,
    //     jugdeField: ['style', 'materialType'], jugdeValue: ['Text'],
    // },
    // //  font_size
    // {
    //     span: 24, formType: 'NUMBER', name: ['style', 'materialOptions', 'font_size'], label: '文字字号', rules: true,
    //     jugdeField: ['style', 'materialType'], jugdeValue: ['Text']
    // },
    // //  SELECT font_family
    // {
    //     span: 24, formType: 'SELECT', name: ['style', 'materialOptions', 'font_family'], label: '文字字体', rules: true,
    //     valueEnum: MappingData.Font__Family, jugdeField: ['style', 'materialType'],
    //     jugdeValue: ['Text']
    // },
    // //  SELECT font_weight
    // {
    //     span: 24, formType: 'SELECT', name: ['style', 'materialOptions', 'font_weight'], label: '文字加粗', rules: true,
    //     valueEnum: MappingData.Font__WeightStr, jugdeField: ['style', 'materialType'],
    //     jugdeValue: ['Text']
    // },
    // //  SELECT font_style
    // {
    //     span: 24, formType: 'SELECT', name: ['style', 'materialOptions', 'font_style'], label: '文字倾斜', rules: true,
    //     valueEnum: MappingData.Font__Style, jugdeField: ['style', 'materialType'],
    //     jugdeValue: ['Text']
    // },
    // //  RADIO stroke
    // {
    //     span: 24, formType: 'RADIO', name: ['style', 'materialOptions', 'stroke'], label: '描边文本', rules: true,
    //     valueEnum: MappingData.IsEnabledBool, jugdeField: ['style', 'materialType'], jugdeValue: ['Text']
    // },
    // //  strokeColor
    // {
    //     span: 24, formType: 'COLOR', name: ['style', 'materialOptions', 'strokeColor'], label: '描边颜色', rules: true,
    //     jugdeField: ['style', 'materialType'], jugdeValue: ['Text'],
    // },
    // //  strokeWidth
    // {
    //     span: 24, formType: 'NUMBER', name: ['style', 'materialOptions', 'strokeWidth'], label: '描边宽度', rules: true,
    //     jugdeField: ['style', 'materialType'], jugdeValue: ['Text']
    // },
    // //  RADIO outline
    // {
    //     span: 24, formType: 'RADIO', name: ['style', 'materialOptions', 'outline'], label: '文本边框', rules: true,
    //     valueEnum: MappingData.IsEnabledBool, jugdeField: ['style', 'materialType'], jugdeValue: ['Text']
    // },
    // //  outlineColor
    // {
    //     span: 24, formType: 'COLOR', name: ['style', 'materialOptions', 'outlineColor'], label: '边框颜色', rules: true,
    //     jugdeField: ['style', 'materialType'], jugdeValue: ['Text'],
    // },
    // //  outlineWidth
    // {
    //     span: 24, formType: 'NUMBER', name: ['style', 'materialOptions', 'outlineWidth'], label: '边框宽度', rules: true,
    //     jugdeField: ['style', 'materialType'], jugdeValue: ['Text','PolylineOutline']
    // },
    // //  RADIO background
    // {
    //     span: 24, formType: 'RADIO', name: ['style', 'materialOptions', 'background'], label: '开启背景', rules: true,
    //     valueEnum: MappingData.IsEnabledBool, jugdeField: ['style', 'materialType'], jugdeValue: ['Text']
    // },
    // //  backgroundColor
    // {
    //     span: 24, formType: 'COLOR', name: ['style', 'materialOptions', 'backgroundColor'], label: '背景颜色', rules: true,
    //     jugdeField: ['style', 'materialType'], jugdeValue: ['Text'],
    // },
    // //  padding
    // {
    //     span: 24, formType: 'NUMBER', name: ['style', 'materialOptions', 'padding'], label: '背景填充', rules: true,
    //     jugdeField: ['style', 'materialType'], jugdeValue: ['Text']
    // },
    //  SELECT image
    {
        span: 24, formType: 'SELECT', name: ['style', 'materialOptions', 'image'], label: '选择图片', rules: true,
        valueEnum: MappingData.mars3d__polylineImage, jugdeField: ['style', 'materialType'],
        jugdeValue: ['LineFlow', 'DigitalFlow', 'WallScroll', 'RectSlide', 'Image']
    },
    //  SELECT normalMap
    {
        span: 24, formType: 'RADIO', name: ['style', 'materialOptions', 'normalMap'], label: '水面材质', rules: true,
        valueEnum: MappingData.mars3d__waterMaterial, jugdeField: ['style', 'materialType'],
        jugdeValue: ['Water']
    },
    //  SELECT specularMap
    {
        span: 24, formType: 'RADIO', name: ['style', 'materialOptions', 'specularMap'], label: '水面材质', rules: true,
        valueEnum: MappingData.mars3d__waterMaterial, jugdeField: ['style', 'materialType'],
        jugdeValue: ['WaterLight']
    },


    //  基础色值 color 
    {
        span: 24, formType: 'COLOR', name: ['style', 'materialOptions', 'color'], label: '基础色值', rules: true,
        jugdeField: ['style', 'materialType'],
        jugdeValue: ['Color', 'RandomColor', 'PolylineArrow', 'ODLine', 'LineBloom', 'LineTrail', 'LineFlicker', 'PolylineGlow', 'LineDashArrow',
            'LineFlowColor', 'LineThreeDash', 'PolylineDash', 'LineDotDash', 'LineCross', 'PolylineOutline', 'LineFlow', 'DigitalFlow', 'WallScroll', 'RectSlide',
            'ScanLine', 'RadarLine', 'RadarWave', 'CircleWave', 'CylinderWave', 'EllipsoidWave', 'EllipsoidElectric', 'Grid', 'Image', 'NeonLight', 'PolyAsphalt',
            'PolyGradient', 'Text'
        ],
    },
    //  bgColor
    {
        span: 24, formType: 'COLOR', name: ['style', 'materialOptions', 'bgColor'], label: '背景颜色', rules: true,
        jugdeField: ['style', 'materialType'], jugdeValue: ['ODLine', 'LineFlow'],
    },
    //  outlineColor
    {
        span: 24, formType: 'COLOR', name: ['style', 'materialOptions', 'outlineColor'], label: '衬色颜色', rules: true,
        jugdeField: ['style', 'materialType'], jugdeValue: ['PolylineOutline'],
    },
    //  gapColor
    {
        span: 24, formType: 'COLOR', name: ['style', 'materialOptions', 'gapColor'], label: '虚线颜色', rules: true,
        jugdeField: ['style', 'materialType'], jugdeValue: ['LineDashArrow', 'PolylineDash', 'LineDotDash'],
    },
    //  sidesColor
    {
        span: 24, formType: 'COLOR', name: ['style', 'materialOptions', 'sidesColor'], label: '外侧颜色', rules: true,
        jugdeField: ['style', 'materialType'], jugdeValue: ['LineThreeDash'],
    },
    //  evenColor
    {
        span: 24, formType: 'COLOR', name: ['style', 'materialOptions', 'evenColor'], label: '主要颜色', rules: true,
        jugdeField: ['style', 'materialType'], jugdeValue: ['Checkerboard', 'PolyBlob', 'PolyFacet', 'PolyGrass', 'PolyWood', 'Stripe'],
    },
    //  oddColor
    {
        span: 24, formType: 'COLOR', name: ['style', 'materialOptions', 'oddColor'], label: '辅助颜色', rules: true,
        jugdeField: ['style', 'materialType'], jugdeValue: ['Checkerboard', 'PolyBlob', 'PolyFacet', 'PolyGrass', 'PolyWood', 'Stripe'],
    },
    //  baseWaterColor
    {
        span: 24, formType: 'COLOR', name: ['style', 'materialOptions', 'baseWaterColor'], label: '基础颜色', rules: true,
        jugdeField: ['style', 'materialType'], jugdeValue: ['Water'],
    },
    //  blendColor
    {
        span: 24, formType: 'COLOR', name: ['style', 'materialOptions', 'blendColor'], label: '混合颜色', rules: true,
        jugdeField: ['style', 'materialType'], jugdeValue: ['Water'],
    },
    //  速度参数 speed
    {
        span: 24, formType: 'NUMBER', name: ['style', 'materialOptions', 'speed'], label: '基础速度', rules: true,
        jugdeField: ['style', 'materialType'],
        jugdeValue: [
            'ODLine', 'LineBloom', 'LineTrail', 'LineFlicker', 'LineFlowColor', 'LineFlow', 'DigitalFlow', 'WallScroll', 'RectSlide', 'ScanLine', 'RadarLine',
            'RadarWave', 'CircleWave', 'CylinderWave', 'EllipsoidWave', 'EllipsoidElectric', 'Text'
        ]
    },
    //  startTime
    {
        span: 24, formType: 'NUMBER', name: ['style', 'materialOptions', 'startTime'], label: '开始时间', rules: true,
        jugdeField: ['style', 'materialType'], jugdeValue: ['ODLine', 'LineFlowColor']
    },
    //  dashLength
    {
        span: 24, formType: 'NUMBER', name: ['style', 'materialOptions', 'dashLength'], label: '虚线间隔', rules: true,
        jugdeField: ['style', 'materialType'], jugdeValue: ['LineDashArrow', 'LineThreeDash', 'PolylineDash', 'LineDotDash', 'LineCross']
    },
    //  maskLength
    {
        span: 24, formType: 'NUMBER', name: ['style', 'materialOptions', 'maskLength'], label: '间隔长度', rules: true,
        jugdeField: ['style', 'materialType'], jugdeValue: ['LineCross']
    },
    //  sidesDashLength
    {
        span: 24, formType: 'NUMBER', name: ['style', 'materialOptions', 'sidesDashLength'], label: '外线长度', rules: true,
        jugdeField: ['style', 'materialType'], jugdeValue: ['LineThreeDash']
    },
    //  outlineWidth
    {
        span: 24, formType: 'NUMBER', name: ['style', 'materialOptions', 'outlineWidth'], label: '衬色宽度', rules: true,
        jugdeField: ['style', 'materialType'], jugdeValue: ['PolylineOutline']
    },
    //  repeat_x
    {
        span: 24, formType: 'NUMBER', name: ['style', 'materialOptions', 'repeat_x'], label: '横轴重复', rules: true,
        jugdeField: ['style', 'materialType'], jugdeValue: ['LineFlow', 'Image']
    },
    //  repeat_y
    {
        span: 24, formType: 'NUMBER', name: ['style', 'materialOptions', 'repeat_y'], label: '纵轴重复', rules: true,
        jugdeField: ['style', 'materialType'], jugdeValue: ['LineFlow', 'Image']
    },
    //  segment
    {
        span: 24, formType: 'NUMBER', name: ['style', 'materialOptions', 'segment'], label: '分段数量', rules: true,
        jugdeField: ['style', 'materialType'], jugdeValue: ['DigitalFlow']
    },
    //  count
    {
        span: 24, formType: 'NUMBER', name: ['style', 'materialOptions', 'count'], label: '重复数量', rules: true,
        jugdeField: ['style', 'materialType'], jugdeValue: ['WallScroll', 'CircleWave']
    },
    //  repeat
    {
        span: 24, formType: 'NUMBER', name: ['style', 'materialOptions', 'repeat'], label: '重复数量', rules: true,
        jugdeField: ['style', 'materialType'], jugdeValue: ['CylinderWave', 'Checkerboard', 'Stripe']
    },
    //  offset
    {
        span: 24, formType: 'NUMBER', name: ['style', 'materialOptions', 'offset'], label: '起始位置', rules: true,
        jugdeField: ['style', 'materialType'], jugdeValue: ['Stripe']
    },
    //  glow
    {
        span: 24, formType: 'NUMBER', name: ['style', 'materialOptions', 'glow'], label: '泛光强度', rules: true, min: 0, max: 10, step: 0.01,
        jugdeField: ['style', 'materialType'], jugdeValue: ['LineBloom', 'DigitalFlow']
    },
    //  showRatio
    {
        span: 24, formType: 'NUMBER', name: ['style', 'materialOptions', 'showRatio'], label: '线宽比例', rules: true, min: -1, max: 1, step: 0.1,
        jugdeField: ['style', 'materialType'], jugdeValue: ['LineBloom']
    },
    //  glowPower
    {
        span: 24, formType: 'NUMBER', name: ['style', 'materialOptions', 'glowPower'], label: '高亮强度', rules: true, min: 0, max: 1, step: 0.01,
        jugdeField: ['style', 'materialType'], jugdeValue: ['PolylineGlow']
    },
    //  taperPower
    {
        span: 24, formType: 'NUMBER', name: ['style', 'materialOptions', 'taperPower'], label: '渐变效果', rules: true, min: 0, max: 1, step: 0.01,
        jugdeField: ['style', 'materialType'], jugdeValue: ['PolylineGlow']
    },
    //  dashPattern
    {
        span: 24, formType: 'NUMBER', name: ['style', 'materialOptions', 'dashPattern'], label: '渐变效果', rules: true, min: 0, max: 255, step: 1,
        jugdeField: ['style', 'materialType'], jugdeValue: ['LineDashArrow', 'LineThreeDash', 'PolylineDash', 'LineDotDash', 'LineCross']
    },
    //  percent
    {
        span: 24, formType: 'NUMBER', name: ['style', 'materialOptions', 'percent'], label: '流动比例', rules: true, min: 0, max: 1, step: 0.01,
        jugdeField: ['style', 'materialType'], jugdeValue: ['LineFlowColor']
    },
    //  alpha
    {
        span: 24, formType: 'NUMBER', name: ['style', 'materialOptions', 'alpha'], label: '透明程度', rules: true, min: 0, max: 1, step: 0.1,
        jugdeField: ['style', 'materialType'], jugdeValue: ['LineFlowColor', 'WaterLight']
    },
    //  gradient
    {
        span: 24, formType: 'NUMBER', name: ['style', 'materialOptions', 'gradient'], label: '透明程度', rules: true, min: 0, max: 1, step: 0.1,
        jugdeField: ['style', 'materialType'], jugdeValue: ['CircleWave']
    },
    //  cellAlpha
    {
        span: 24, formType: 'NUMBER', name: ['style', 'materialOptions', 'cellAlpha'], label: '透明程度', rules: true, min: 0, max: 1, step: 0.1,
        jugdeField: ['style', 'materialType'], jugdeValue: ['Grid']
    },
    //  NUMBER widthRatio
    {
        span: 24, formType: 'NUMBER', name: ['style', 'materialOptions', 'widthRatio'], label: '中心比例', rules: true, min: 0, max: 1, step: 0.1,
        jugdeField: ['style', 'materialType'], jugdeValue: ['LineThreeDash']
    },
    //  NUMBER sidesWidthRatio
    {
        span: 24, formType: 'NUMBER', name: ['style', 'materialOptions', 'sidesWidthRatio'], label: '外线比例', rules: true, min: 0, max: 1, step: 0.1,
        jugdeField: ['style', 'materialType'], jugdeValue: ['LineThreeDash']
    },
    //  NUMBER centerPower
    {
        span: 24, formType: 'NUMBER', name: ['style', 'materialOptions', 'centerPower'], label: '中心百分比', rules: true, min: 0, max: 1, step: 0.01,
        jugdeField: ['style', 'materialType'], jugdeValue: ['LineCross']
    },
    //  NUMBER thickness
    {
        span: 24, formType: 'NUMBER', name: ['style', 'materialOptions', 'thickness'], label: '宽度比例', rules: true, min: 0, max: 1, step: 0.01,
        jugdeField: ['style', 'materialType'], jugdeValue: ['CylinderWave']
    },
    //  NUMBER dashPower
    {
        span: 24, formType: 'NUMBER', name: ['style', 'materialOptions', 'dashPower'], label: '虚线百分比', rules: true, min: 0, max: 1, step: 0.01,
        jugdeField: ['style', 'materialType'], jugdeValue: ['LineCross']
    },
    //  NUMBER flowGlow
    {
        span: 24, formType: 'NUMBER', name: ['style', 'materialOptions', 'flowGlow'], label: '流动高亮', rules: true, min: 0, max: 1, step: 0.1,
        jugdeField: ['style', 'materialType'], jugdeValue: ['DigitalFlow']
    },
    //  NUMBER size
    {
        span: 24, formType: 'NUMBER', name: ['style', 'materialOptions', 'size'], label: '块大小', rules: true, min: 0, max: 1, step: 0.01,
        jugdeField: ['style', 'materialType'], jugdeValue: ['PolyAsphalt']
    },
    //  NUMBER frequency
    {
        span: 24, formType: 'NUMBER', name: ['style', 'materialOptions', 'frequency'], label: '混色频率', rules: true, min: 0, max: 100, step: 0.1,
        jugdeField: ['style', 'materialType'], jugdeValue: ['PolyAsphalt', 'PolyBlob', 'PolyFacet', 'PolyGrass', 'PolyWood', 'Water']
    },
    //  NUMBER grainFrequency
    {
        span: 24, formType: 'NUMBER', name: ['style', 'materialOptions', 'grainFrequency'], label: '颗粒频率', rules: true, min: 0, max: 100, step: 0.1,
        jugdeField: ['style', 'materialType'], jugdeValue: ['PolyWood']
    },
    //  NUMBER alphaPower
    {
        span: 24, formType: 'NUMBER', name: ['style', 'materialOptions', 'alphaPower'], label: '透明度系数', rules: true, min: 0, max: 10, step: 0.1,
        jugdeField: ['style', 'materialType'], jugdeValue: ['PolyGradient']
    },
    //  NUMBER diffusePower
    {
        span: 24, formType: 'NUMBER', name: ['style', 'materialOptions', 'diffusePower'], label: '漫反射系数', rules: true, min: 0, max: 10, step: 0.1,
        jugdeField: ['style', 'materialType'], jugdeValue: ['PolyGradient']
    },
    //  NUMBER animationSpeed
    {
        span: 24, formType: 'NUMBER', name: ['style', 'materialOptions', 'animationSpeed'], label: '动画速度', rules: true, min: 0, max: 1, step: 0.01,
        jugdeField: ['style', 'materialType'], jugdeValue: ['Water']
    },
    //  NUMBER amplitude
    {
        span: 24, formType: 'NUMBER', name: ['style', 'materialOptions', 'amplitude'], label: '水波振幅', rules: true, min: 0, max: 100, step: 0.1,
        jugdeField: ['style', 'materialType'], jugdeValue: ['Water']
    },
    //  NUMBER specularIntensity
    {
        span: 24, formType: 'NUMBER', name: ['style', 'materialOptions', 'specularIntensity'], label: '反射强度', rules: true, min: 0, max: 1, step: 0.1,
        jugdeField: ['style', 'materialType'], jugdeValue: ['Water']
    },
    //  NUMBER fadeFactor
    {
        span: 24, formType: 'NUMBER', name: ['style', 'materialOptions', 'fadeFactor'], label: '衰减因子', rules: true, min: 0, max: 1, step: 0.1,
        jugdeField: ['style', 'materialType'], jugdeValue: ['Water']
    },


    //  RADIO bidirectional
    {
        span: 24, formType: 'RADIO', name: ['style', 'materialOptions', 'bidirectional'], label: '运行形式', rules: true,
        valueEnum: MappingData.mars3d__bidirectional, jugdeField: ['style', 'materialType'], jugdeValue: ['ODLine']
    },
    //  RADIO axisY
    {
        span: 24, formType: 'RADIO', name: ['style', 'materialOptions', 'axisY'], label: 'Y轴朝上', rules: true,
        valueEnum: MappingData.IsEnabledBool, jugdeField: ['style', 'materialType'], jugdeValue: ['LineFlow', 'WallScroll']
    },
    //  RADIO mixt
    {
        span: 24, formType: 'RADIO', name: ['style', 'materialOptions', 'mixt'], label: '颜色混合', rules: true,
        valueEnum: MappingData.IsEnabledBool, jugdeField: ['style', 'materialType'], jugdeValue: ['LineFlow']
    },
    //  RADIO reverse
    {
        span: 24, formType: 'RADIO', name: ['style', 'materialOptions', 'reverse'], label: '流动方向', rules: true,
        valueEnum: MappingData.mars3d__Reverse, jugdeField: ['style', 'materialType'], jugdeValue: ['WallScroll']
    },
    //  RADIO bloom
    {
        span: 24, formType: 'RADIO', name: ['style', 'materialOptions', 'bloom'], label: '是否泛光', rules: true,
        valueEnum: MappingData.IsEnabledBool, jugdeField: ['style', 'materialType'], jugdeValue: ['WallScroll']
    },
    //  RADIO pure
    {
        span: 24, formType: 'RADIO', name: ['style', 'materialOptions', 'pure'], label: '是否纯色', rules: true,
        valueEnum: MappingData.IsEnabledBool, jugdeField: ['style', 'materialType'], jugdeValue: ['RectSlide']
    },
    //  RADIO transparent
    {
        span: 24, formType: 'RADIO', name: ['style', 'materialOptions', 'transparent'], label: '背景透明', rules: true,
        valueEnum: MappingData.IsEnabledBool, jugdeField: ['style', 'materialType'], jugdeValue: ['Image']
    },
    //  RADIO isInner
    {
        span: 24, formType: 'RADIO', name: ['style', 'materialOptions', 'isInner'], label: '渐变方向', rules: true,
        valueEnum: MappingData.mars3d__Inner, jugdeField: ['style', 'materialType'], jugdeValue: ['PolyGradient']
    },
    //  RADIO orientation
    {
        span: 24, formType: 'RADIO', name: ['style', 'materialOptions', 'orientation'], label: '条纹方向', rules: true,
        valueEnum: MappingData.mars3d__orientation, jugdeField: ['style', 'materialType'], jugdeValue: ['Stripe']
    },
]


// !!! 场景基础设置
// TODO 基础设置
const SceneBaseConfig = [
    { span: 24, formType: 'RADIO', name: 'sceneMode', label: '场景模式', valueEnum: MappingData.Mars3d__Scene },
    { span: 24, formType: 'RADIO', name: 'highDynamicRange', label: '高动态渲染', valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: 'fxaa', label: '快速抗锯齿', valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: 'showSkyAtmosphere', label: '大气外光圈', valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: 'fog', label: '雾化效果', valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: 'showSun', label: '显示太阳', valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: 'showMoon', label: '显示月亮', valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: 'showSkyBox', label: '显示天空盒', valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'COLOR', name: 'backgroundColor', label: '空间背景色', rules: true },
    { span: 24, formType: 'NUMBER', name: 'verticalExaggeration', label: '地形夸张', rules: true, min: 0, max: 100, step: 1 },
]

// TODO 地球设置
const SceneGlobeConfig = [
    { span: 24, formType: 'RADIO', name: 'show', label: '显示地球', valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'COLOR', name: 'baseColor', label: '地球背景色', rules: true },
    { span: 24, formType: 'RADIO', name: 'depthTestAgainstTerrain', label: '深度检测', valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: 'showGroundAtmosphere', label: '地面大气', valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: 'enableLighting', label: '昼夜区间', valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: 'showWaterEffect', label: '水面遮罩', valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: 'showSkirts', label: '地形裙', valueEnum: MappingData.IsEnabledBool },
]

// TODO 操作设置
const SceneCameraController = [
    { span: 24, formType: 'RADIO', name: 'enableZoom', label: '缩放地图', valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: 'enableCollisionDetection', label: '碰撞检测', valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'NUMBER', name: 'zoomFactor', label: '滚轮放大倍数', rules: true, min: 1, max: 10, step: 1 },
    { span: 24, formType: 'NUMBER', name: 'minimumZoomDistance', label: '相机最近视距', rules: true, min: 1, max: 100000000, step: 1 },
    { span: 24, formType: 'NUMBER', name: 'maximumZoomDistance', label: '相机最远视距', rules: true, min: 1, max: 100000000, step: 1 },
    { span: 24, formType: 'NUMBER', name: 'minimumCollisionTerrainHeight', label: '最小碰撞高度', rules: true, min: 1, max: 200000, step: 1 },
    { span: 24, formType: 'RADIO', name: 'enableTilt', label: '倾斜相机(3D和哥伦布视图)', valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: 'enableRotate', label: '转换位置(2D和哥伦布视图)', valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: 'enableTranslate', label: '平移地图(2D和3D视图)', valueEnum: MappingData.IsEnabledBool },
]

// TODO 瓦片工具
const SceneTerrainConfig = [
    { span: 24, formType: 'RADIO', name: 'show', label: '开启地形', valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: 'wireframe', label: '三角网', valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'SELECT', name: 'basemap', label: '地图瓦片', valueEnum: MappingData.mars3d__Basemaps },
    { span: 24, formType: 'SELECTM', name: 'layer', label: '图层瓦片', valueEnum: MappingData.mars3d__Layer },
    { span: 24, formType: 'RADIO', name: 'toolbar', label: '按钮工具栏', valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'SELECT', name: 'toolbar_position', label: '按钮定位', valueEnum: MappingData.mars3d__Toolbar },
    { span: 24, formType: 'RADIO', name: 'geocoder', label: '地点搜索', valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: 'homeButton', label: '视角回归', valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: 'locationBar', label: '状态信息', valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: 'distanceLegend', label: '比例尺', valueEnum: MappingData.IsEnabledBool },
]

// TODO 天气设置
const SceneWeatherConfig = [
    { formType: 'TempTitle', label: '雾天', name: 'SceneWeatherConfigFog' },
    { span: 24, formType: 'RADIO', name: 'fog_enabled', label: '是否启用', valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'COLOR', name: 'fog_color', label: '雾气颜色', rules: true, jugdeField: 'fog_enabled', jugdeValue: [true] },
    {
        span: 24, formType: 'NUMBER', name: 'fog_maxHeight', label: '最大高度', rules: true, min: 0, max: 100000, step: 1,
        jugdeField: 'fog_enabled', jugdeValue: [true]
    },
    { formType: 'TempTitle', label: '雨天', name: 'SceneWeatherConfigRain' },
    { span: 24, formType: 'RADIO', name: 'rain_enabled', label: '是否启用', valueEnum: MappingData.IsEnabledBool },
    {
        span: 24, formType: 'NUMBER', name: 'rain_size', label: '粒子大小', rules: true, min: 1, max: 100, step: 1,
        jugdeField: 'rain_enabled', jugdeValue: [true]
    },
    {
        span: 24, formType: 'NUMBER', name: 'rain_speed', label: '粒子速度', rules: true, min: 1, max: 100, step: 1,
        jugdeField: 'rain_enabled', jugdeValue: [true]
    },
    {
        span: 24, formType: 'NUMBER', name: 'rain_direction', label: '粒子方向', rules: true, min: -90, max: 90, step: 1,
        jugdeField: 'rain_enabled', jugdeValue: [true]
    },
    {
        span: 24, formType: 'NUMBER', name: 'rain_maxHeight', label: '最大高度', rules: true, min: 0, max: 100000, step: 1,
        jugdeField: 'rain_enabled', jugdeValue: [true]
    },
    { formType: 'TempTitle', label: '雪天', name: 'SceneWeatherConfigSnow' },
    { span: 24, formType: 'RADIO', name: 'snow_enabled', label: '是否启用', valueEnum: MappingData.IsEnabledBool },
    {
        span: 24, formType: 'NUMBER', name: 'snow_scale', label: '粒子大小', rules: true, min: 1, max: 100, step: 1,
        jugdeField: 'snow_enabled', jugdeValue: [true]
    },
    {
        span: 24, formType: 'NUMBER', name: 'snow_speed', label: '粒子速度', rules: true, min: 1, max: 100, step: 1,
        jugdeField: 'snow_enabled', jugdeValue: [true]
    },
    {
        span: 24, formType: 'NUMBER', name: 'snow_maxHeight', label: '最大高度', rules: true, min: 0, max: 100000, step: 1,
        jugdeField: 'snow_enabled', jugdeValue: [true]
    },
    { formType: 'TempTitle', label: '积雪', name: 'SceneWeatherConfigSnowCover' },
    { span: 24, formType: 'RADIO', name: 'snowCover_enabled', label: '是否启用', valueEnum: MappingData.IsEnabledBool },
    {
        span: 24, formType: 'NUMBER', name: 'snowCover_alpha', label: '积雪强度', rules: true, min: 0, max: 1, step: 0.1,
        jugdeField: 'snowCover_enabled', jugdeValue: [true]
    },
    {
        span: 24, formType: 'NUMBER', name: 'snowCover_maxHeight', label: '最大高度', rules: true, min: 0, max: 100000, step: 1,
        jugdeField: 'snowCover_enabled', jugdeValue: [true]
    },
]

const SceneColourConfig = [
    { formType: 'TempTitle', label: '泛光特效', name: 'SceneColourConfigBloom' },
    { span: 24, formType: 'RADIO', name: 'bloom_enabled', label: '是否启用', valueEnum: MappingData.IsEnabledBool },
    {
        span: 24, formType: 'NUMBER', name: 'bloom_brightness', label: '亮度', rules: true, min: -0.1, max: 3, step: 0.01,
        jugdeField: 'bloom_enabled', jugdeValue: [true]
    },
    {
        span: 24, formType: 'NUMBER', name: 'bloom_contrast', label: '对比度', rules: true, min: -255, max: 255, step: 1,
        jugdeField: 'bloom_enabled', jugdeValue: [true]
    },
    {
        span: 24, formType: 'NUMBER', name: 'bloom_delta', label: '增量', rules: true, min: 1, max: 5, step: 0.01,
        jugdeField: 'bloom_enabled', jugdeValue: [true]
    },
    {
        span: 24, formType: 'NUMBER', name: 'bloom_sigma', label: '步长', rules: true, min: 0, max: 7, step: 0.01,
        jugdeField: 'bloom_enabled', jugdeValue: [true]
    },
    {
        span: 24, formType: 'NUMBER', name: 'bloom_stepSize', label: 'Sigma', rules: true, min: 1, max: 10, step: 0.01,
        jugdeField: 'bloom_enabled', jugdeValue: [true]
    },
    { formType: 'TempTitle', label: '亮度特效', name: 'SceneColourConfigBrightness' },
    { span: 24, formType: 'RADIO', name: 'brightness_enabled', label: '是否启用', valueEnum: MappingData.IsEnabledBool },
    {
        span: 24, formType: 'NUMBER', name: 'brightness_brightness', label: '对比度', rules: true, min: 0, max: 5, step: 0.01,
        jugdeField: 'brightness_enabled', jugdeValue: [true]
    },
    { formType: 'TempTitle', label: '颜色校正', name: 'SceneColourConfigColorCorrection' },
    { span: 24, formType: 'RADIO', name: 'colorCorrection_enabled', label: '是否启用', valueEnum: MappingData.IsEnabledBool },
    {
        span: 24, formType: 'NUMBER', name: 'colorCorrection_brightness', label: '亮度', rules: true, min: 0, max: 2, step: 0.1,
        jugdeField: 'colorCorrection_enabled', jugdeValue: [true]
    },
    {
        span: 24, formType: 'NUMBER', name: 'colorCorrection_contrast', label: '对比度', rules: true, min: 0, max: 2, step: 0.1,
        jugdeField: 'colorCorrection_enabled', jugdeValue: [true]
    },
    {
        span: 24, formType: 'NUMBER', name: 'colorCorrection_hue', label: '色调', rules: true, min: 0, max: 1, step: 0.1,
        jugdeField: 'colorCorrection_enabled', jugdeValue: [true]
    },
    {
        span: 24, formType: 'NUMBER', name: 'colorCorrection_saturation', label: '饱和度', rules: true, min: 0, max: 2, step: 0.1,
        jugdeField: 'colorCorrection_enabled', jugdeValue: [true]
    },
    { formType: 'TempTitle', label: '景深效果', name: 'SceneColourDepthOfField' },
    { span: 24, formType: 'RADIO', name: 'depthOfField_enabled', label: '是否启用', valueEnum: MappingData.IsEnabledBool },
    {
        span: 24, formType: 'NUMBER', name: 'depthOfField_focalDistance', label: '焦距', rules: true, min: 1, max: 500, step: 1,
        jugdeField: 'depthOfField_enabled', jugdeValue: [true]
    },
    {
        span: 24, formType: 'NUMBER', name: 'depthOfField_delta', label: '增量', rules: true, min: 0.1, max: 2, step: 0.01,
        jugdeField: 'depthOfField_enabled', jugdeValue: [true]
    },
    {
        span: 24, formType: 'NUMBER', name: 'depthOfField_stepSize', label: '步长', rules: true, min: 0, max: 7, step: 0.01,
        jugdeField: 'depthOfField_enabled', jugdeValue: [true]
    },
    {
        span: 24, formType: 'NUMBER', name: 'depthOfField_sigma', label: 'Sigma', rules: true, min: 0.5, max: 5, step: 0.01,
        jugdeField: 'depthOfField_enabled', jugdeValue: [true]
    },
    { formType: 'TempTitle', label: '黑白效果', name: 'SceneColourNightBlackAndWhite' },
    { span: 24, formType: 'RADIO', name: 'blackAndWhite_enabled', label: '是否启用', valueEnum: MappingData.IsEnabledBool },
    {
        span: 24, formType: 'NUMBER', name: 'blackAndWhite_gradations', label: '渐变', rules: true, min: 1, max: 10, step: 0.01,
        jugdeField: 'blackAndWhite_enabled', jugdeValue: [true]
    },
    { formType: 'TempTitle', label: '夜视效果', name: 'SceneColourNightVision' },
    { span: 24, formType: 'RADIO', name: 'nightVision_enabled', label: '是否启用', valueEnum: MappingData.IsEnabledBool },

    { formType: 'TempTitle', label: '马赛克', name: 'SceneColourConfigMosaic' },
    { span: 24, formType: 'RADIO', name: 'mosaic_enabled', label: '是否启用', valueEnum: MappingData.IsEnabledBool },
]


// !!! 场景剪裁
// TODO 剪裁区域
const BoundaryBorderConfig = [
    { span: 24, formType: 'RADIO', name: 'enabled', label: '是否剪裁', valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'TREEM', name: 'border', label: '区域选择', valueEnum: MappingData.mapTiles, jugdeField: 'enabled', jugdeValue: [true] },
]

// TODO 覆盖面
const BoundaryCoverConfig = [
    { span: 24, formType: 'RADIO', name: 'show', label: '是否启用', valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'NUMBER', name: ['style', 'diffHeight'], label: '立体高度', rules: true },
    { span: 24, formType: 'RADIO', name: ['style', 'hasShadows'], label: '是否阴影', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'clampToGround'], label: '是否贴地', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'outline'], label: '是否边框', rules: true, valueEnum: MappingData.IsEnabledBool },
    ...materialOptionsMapping
]

// TODO 边界线
const BoundaryLineConfig = [
    { span: 24, formType: 'RADIO', name: 'show', label: '是否启用', valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'NUMBER', name: ['style', 'width'], label: '线条宽度', rules: true },
    { span: 24, formType: 'RADIO', name: ['style', 'hasShadows'], label: '是否阴影', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'closure'], label: '是否闭合', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'clampToGround'], label: '是否贴地', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'depthFail'], label: '是否遮挡', rules: true, valueEnum: MappingData.IsEnabledBool },
    ...materialOptionsMapping
]

// TODO 边界墙
const BoundaryWallConfig = [
    { span: 24, formType: 'RADIO', name: 'show', label: '是否启用', valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'NUMBER', name: ['style', 'diffHeight'], label: '墙体高度', rules: true, },
    { span: 24, formType: 'NUMBER', name: ['style', 'setHeight'], label: '向下偏移', rules: true, },
    { span: 24, formType: 'RADIO', name: ['style', 'closure'], label: '是否闭合', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'hasShadows'], label: '是否阴影', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'outline'], label: '是否边框', rules: true, valueEnum: MappingData.IsEnabledBool },
    ...materialOptionsMapping
]

// !!! 新增元素
// Todo 元素列表字段
const ElementListFields = [
    { span: 24, formType: 'HIDDEN', name: 'uuid', label: '唯一标识', rules: true },
    { span: 24, formType: 'INPUT', name: 'fieldName', label: '字段名称', rules: true },
    { span: 24, formType: 'RADIO', name: 'fieldType', label: '数据类型', valueEnum: MappingData.mars3d__fieldsType, rules: true },
    {
        span: 24, formType: 'SELECT', name: 'elementType', label: '元素类型', valueEnum: MappingData.mars3d__elementType, rules: true,
        jugdeField: 'fieldType', jugdeValue: ['element']
    },
]

// Todo 小模型
const modelP = [
    { span: 24, formType: 'TempPosition', name: 'position', label: '经纬度', rules: true },
    { span: 24, formType: 'TREE', name: ['style', 'url'], label: '渲染模型', rules: true, valueEnum: gltfMapping },
    { span: 24, formType: 'NUMBER', name: ['style', 'scale'], label: '缩放比例', rules: true, min: 0, max: 10000, step: 0.1 },
    { span: 24, formType: 'NUMBER', name: ['style', 'heading'], label: '方向角', rules: true, min: -360, max: 360, step: 1 },
    { span: 24, formType: 'NUMBER', name: ['style', 'pitch'], label: '俯仰角', rules: true, min: -360, max: 360, step: 1 },
    { span: 24, formType: 'NUMBER', name: ['style', 'roll'], label: '翻滚角', rules: true, min: -360, max: 360, step: 1 },
    { span: 24, formType: 'RADIO', name: ['style', 'hasShadows'], label: '是否阴影', rules: true, valueEnum: MappingData.IsYesBool },
    { span: 24, formType: 'RADIO', name: ['style', 'clampToGround'], label: '是否贴地', rules: true, valueEnum: MappingData.IsYesBool },
    { span: 24, formType: 'RADIO', name: ['style', 'runAnimations'], label: '加载动画', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'fill'], label: '是否填充', rules: true, valueEnum: MappingData.IsYesBool },
    { span: 24, formType: 'COLOR', name: ['style', 'color'], label: '填充颜色', rules: true },
    { span: 24, formType: 'RADIO', name: ['style', 'silhouette'], label: '是否外轮廓', rules: true, valueEnum: MappingData.IsYesBool },
    { span: 24, formType: 'COLOR', name: ['style', 'silhouetteColor'], label: '外轮廓颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'silhouetteSize'], label: '外轮廓宽度', rules: true },
    ...distanceDisplayConditionMapping__STYLE,
    ...label__STYLE
]
// Todo 文字
const labelP = [
    { span: 24, formType: 'TempPosition', name: 'position', label: '经纬度', rules: true },
    { span: 24, formType: 'INPUT', name: ['style', 'text'], label: '文字内容', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'scale'], label: '缩放比例', rules: true, min: 0, max: 10000, step: 0.1 },
    { span: 24, formType: 'COLOR', name: ['style', 'color'], label: '文字颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'font_size'], label: '文字字号', rules: true },
    { span: 24, formType: 'SELECT', name: ['style', 'font_family'], label: '文字字体', valueEnum: MappingData.Font__Family },
    { span: 24, formType: 'RADIO', name: ['style', 'font_weight'], label: '是否加粗', rules: true, valueEnum: MappingData.Font__WeightStr },
    { span: 24, formType: 'RADIO', name: ['style', 'font_style'], label: '是否斜体', rules: true, valueEnum: MappingData.Font__Style },
    { span: 24, formType: 'RADIO', name: ['style', 'fill'], label: '是否填充', rules: true, valueEnum: MappingData.IsYesBool },
    { span: 24, formType: 'RADIO', name: ['style', 'clampToGround'], label: '是否贴地', rules: true, valueEnum: MappingData.IsYesBool },
    { span: 24, formType: 'RADIO', name: ['style', 'visibleDepth'], label: '是否遮挡', rules: true, valueEnum: MappingData.IsYesBool },
    { span: 24, formType: 'RADIO', name: ['style', 'outline'], label: '是否衬色', rules: true, valueEnum: MappingData.IsYesBool },
    { span: 24, formType: 'COLOR', name: ['style', 'outlineColor'], label: '衬色颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'outlineWidth'], label: '衬色宽度', rules: true },
    { span: 24, formType: 'RADIO', name: ['style', 'background'], label: '是否背景', rules: true, valueEnum: MappingData.IsYesBool },
    { span: 24, formType: 'COLOR', name: ['style', 'backgroundColor'], label: '背景颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'backgroundPadding'], label: '背景内边距', rules: true },
    ...distanceDisplayConditionMapping__STYLE,
]
// Todo 元素点
const pointP = [
    { span: 24, formType: 'TempPosition', name: 'position', label: '经纬度', rules: true },

    { span: 24, formType: 'NUMBER', name: ['style', 'pixelSize'], label: '像素大小', rules: true },
    { span: 24, formType: 'COLOR', name: ['style', 'color'], label: '填充颜色', rules: true },
    { span: 24, formType: 'RADIO', name: ['style', 'clampToGround'], label: '是否贴地', rules: true, valueEnum: MappingData.IsYesBool },
    { span: 24, formType: 'RADIO', name: ['style', 'visibleDepth'], label: '是否遮挡', rules: true, valueEnum: MappingData.IsYesBool },
    { span: 24, formType: 'RADIO', name: ['style', 'outline'], label: '外边框', rules: true, valueEnum: MappingData.IsEnabledBool },
    {
        span: 24, formType: 'NUMBER', name: ['style', 'outlineWidth'], label: '边框宽度', rules: true,
        jugdeField: ['style', 'outline'], jugdeValue: [true]
    },
    {
        span: 24, formType: 'COLOR', name: ['style', 'outlineColor'], label: '边框颜色', rules: true,
        jugdeField: ['style', 'outline'], jugdeValue: [true]
    },
    ...scaleByDistanceMapping__STYLE,
    ...distanceDisplayConditionMapping__STYLE,
    ...label__STYLE
]

// Todo 图标点
const billboardP = [
    { span: 24, formType: 'TempPosition', name: 'position', label: '经纬度', rules: true },
    { span: 24, formType: 'SELECT', name: ['style', 'image'], label: '图标样式', rules: true, valueEnum: MappingData.mars3d__billboardImage },
    { span: 24, formType: 'NUMBER', name: ['style', 'scale'], label: '缩放比例', rules: true, min: 0, max: 10000, step: 0.1 },
    { span: 24, formType: 'NUMBER', name: ['style', 'rotationDegree'], label: '旋转角度', rules: true, min: 0, max: 360, step: 0.1 },
    { span: 24, formType: 'NUMBER', name: ['style', 'width'], label: '图标宽度', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'height'], label: '图标高度', rules: true },
    { span: 24, formType: 'RADIO', name: ['style', 'clampToGround'], label: '是否贴地', rules: true, valueEnum: MappingData.IsYesBool },
    { span: 24, formType: 'RADIO', name: ['style', 'visibleDepth'], label: '是否遮挡', rules: true, valueEnum: MappingData.IsYesBool },
    ...hasPixelOffsetMapping__STYLE,
    ...scaleByDistanceMapping__STYLE,
    ...distanceDisplayConditionMapping__STYLE,
    ...label__STYLE,
]
// Todo 四面体
const tetrahedron = [
    { span: 24, formType: 'TempPosition', name: 'position', label: '经纬度', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'width'], label: '顶部大小', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'height'], label: '椎体高度', rules: true },
    { span: 24, formType: 'COLOR', name: ['style', 'color'], label: '填充颜色', rules: true },
    { span: 24, formType: 'RADIO', name: ['style', 'animation'], label: '动画效果', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'NUMBER', name: ['style', 'moveHeight'], label: '单程高度', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'moveDuration'], label: '单程时长', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'rotationAngle'], label: '每帧旋转', rules: true },
    { span: 24, formType: 'RADIO', name: ['style', 'translucent'], label: '半透明', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'closed'], label: '关闭几何图', rules: true, valueEnum: MappingData.IsEnabledBool },
]

// 自定义div模板
const mars3dDivA01 = [
    {
        span: 24, formType: 'INPUT', name: ['style', 'text'], label: '模板内容', rules: true,
        jugdeField: ['style', 'temp'], jugdeValue: ['HtmlA01']
    },

]

const mars3dDivA02 = [
    {
        span: 24, formType: 'INPUT', name: ['style', 'text'], label: '模板内容', rules: true,
        jugdeField: ['style', 'temp'], jugdeValue: ['HtmlA02']
    },
    {
        span: 24, formType: 'COLOR', name: ['style', 'background'], label: '背景颜色', rules: true,
        jugdeField: ['style', 'temp'], jugdeValue: ['HtmlA02']
    },
]


// Todo DIV点
const div = [
    { span: 24, formType: 'TempPosition', name: 'position', label: '经纬度', rules: true },
    { span: 24, formType: 'SELECT', name: ['style', 'temp'], label: '元素模板', rules: true, valueEnum: MappingData.mars3d__divTemplate },
    ...mars3dDivA01,
    ...mars3dDivA02,
    { span: 24, formType: 'NUMBER', name: ['style', 'offsetX'], label: '横向偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'offsetY'], label: '纵向偏移', rules: true },
    { span: 24, formType: 'RADIO', name: ['style', 'scale'], label: '缩放比例', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'clampToGround'], label: '是否贴地', rules: true, valueEnum: MappingData.IsEnabledBool },
    ...scaleByDistanceMapping__STYLE,
    ...distanceDisplayConditionMapping__STYLE,
]
// Todo 扩散DIV点
const divLightPoint = [
    { span: 24, formType: 'TempPosition', name: 'position', label: '经纬度', rules: true },
    { span: 24, formType: 'COLOR', name: ['style', 'color'], label: '填充颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'size'], label: '元素尺寸', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'offsetX'], label: '横向偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'offsetY'], label: '纵向偏移', rules: true },
    { span: 24, formType: 'RADIO', name: ['style', 'clampToGround'], label: '是否贴地', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'INPUT', name: ['style', 'label', 'text'], label: '文字内容', rules: true },
    { span: 24, formType: 'COLOR', name: ['style', 'label', 'color'], label: '文字颜色', rules: true },
    ...scaleByDistanceMapping__STYLE,
    ...distanceDisplayConditionMapping__STYLE
]
// Todo 竖立DIV点
const divUpLabel = [
    { span: 24, formType: 'TempPosition', name: 'position', label: '经纬度', rules: true },
    { span: 24, formType: 'INPUT', name: ['style', 'text'], label: '文字内容', rules: true },
    { span: 24, formType: 'COLOR', name: ['style', 'color'], label: '文字颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'font_size'], label: '文字字号', rules: true },
    { span: 24, formType: 'SELECT', name: ['style', 'font_family'], label: '文字字体', valueEnum: MappingData.Font__Family },
    { span: 24, formType: 'NUMBER', name: ['style', 'lineHeight'], label: '底部线', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'circleSize'], label: '底部圆', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'offsetX'], label: '横向偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'offsetY'], label: '纵向偏移', rules: true },
    ...scaleByDistanceMapping__STYLE,
    ...distanceDisplayConditionMapping__STYLE

]
// Todo 动态边框DIV点
const divBoderLabel = [
    { span: 24, formType: 'TempPosition', name: 'position', label: '经纬度', rules: true },
    { span: 24, formType: 'INPUT', name: ['style', 'text'], label: '文字内容', rules: true },
    { span: 24, formType: 'COLOR', name: ['style', 'color'], label: '文字颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'font_size'], label: '文字字号', rules: true },
    { span: 24, formType: 'SELECT', name: ['style', 'font_family'], label: '文字字体', valueEnum: MappingData.Font__Family },
    { span: 24, formType: 'COLOR', name: ['style', 'boderColor'], label: '边框颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'width'], label: '边框宽度', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'height'], label: '边框高度', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'offsetX'], label: '横向偏移', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'offsetY'], label: '纵向偏移', rules: true },
    ...scaleByDistanceMapping__STYLE,
    ...distanceDisplayConditionMapping__STYLE
]

// Todo 盒子
const boxP = [
    { span: 24, formType: 'TempPosition', name: 'position', label: '经纬度', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'dimensions_x'], label: '盒子长度', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'dimensions_y'], label: '盒子宽度', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'dimensions_z'], label: '盒子高度', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'heading'], label: '方向角', rules: true, min: -360, max: 360, step: 1 },
    { span: 24, formType: 'NUMBER', name: ['style', 'pitch'], label: '俯仰角', rules: true, min: -360, max: 360, step: 1 },
    { span: 24, formType: 'NUMBER', name: ['style', 'roll'], label: '翻滚角', rules: true, min: -360, max: 360, step: 1 },
    { span: 24, formType: 'RADIO', name: ['style', 'outline'], label: '是否衬色', rules: true, valueEnum: MappingData.IsEnabledBool },
    {
        span: 24, formType: 'COLOR', name: ['style', 'outlineColor'], label: '衬色颜色', rules: true,
        jugdeField: ['style', 'outline'], jugdeValue: [true]

    },
    ...materialOptionsMapping,
    ...label__STYLE
]
// Todo 圆锥
const cylinderP = [
    { span: 24, formType: 'TempPosition', name: 'position', label: '经纬度', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'topRadius'], label: '顶部半径', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'bottomRadius'], label: '底部半径', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'length'], label: '柱面长度', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'slices'], label: '周围边数', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'heading'], label: '方向角', rules: true, min: -360, max: 360, step: 1 },
    { span: 24, formType: 'NUMBER', name: ['style', 'pitch'], label: '俯仰角', rules: true, min: -360, max: 360, step: 1 },
    { span: 24, formType: 'NUMBER', name: ['style', 'roll'], label: '翻滚角', rules: true, min: -360, max: 360, step: 1 },
    { span: 24, formType: 'RADIO', name: ['style', 'outline'], label: '是否衬色', rules: true, valueEnum: MappingData.IsEnabledBool },
    {
        span: 24, formType: 'COLOR', name: ['style', 'outlineColor'], label: '衬色颜色', rules: true,
        jugdeField: ['style', 'outline'], jugdeValue: [true]
    },
    ...materialOptionsMapping,
    ...label__STYLE
]
// Todo 光锥体(无法编辑)
const lightCone = [
    { span: 24, formType: 'TempPosition', name: 'position', label: '经纬度', rules: true },
    { span: 24, formType: 'COLOR', name: ['style', 'color'], label: '锥体颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'radius'], label: '底部半径', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'height'], label: '锥体高度', rules: true },
]
// Todo 圆、圆柱
const circleP = [
    { span: 24, formType: 'TempPosition', name: 'position', label: '经纬度', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'radius'], label: '圆形半径', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'diffHeight'], label: '立体高度', rules: true },
    { span: 24, formType: 'RADIO', name: ['style', 'clampToGround'], label: '是否贴地', rules: true, valueEnum: MappingData.IsYesBool },
    { span: 24, formType: 'RADIO', name: ['style', 'outline'], label: '是否衬色', rules: true, valueEnum: MappingData.IsEnabledBool },
    {
        span: 24, formType: 'COLOR', name: ['style', 'outlineColor'], label: '衬色颜色', rules: true,
        jugdeField: ['style', 'outline'], jugdeValue: [true]
    },
    ...materialOptionsMapping,
    ...label__STYLE
]
// Todo 球体
const ellipsoidP = [
    { span: 24, formType: 'TempPosition', name: 'position', label: '经纬度', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'radii_x'], label: '椭球半径_X', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'radii_y'], label: '椭球半径_Y', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'radii_z'], label: '椭球半径_Z', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'innerRadii_x'], label: '椭球内半径_X', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'innerRadii_y'], label: '椭球内半径_Y', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'innerRadii_z'], label: '椭球内半径_Z', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'minimumClockDegree'], label: '最小时钟角', rules: true, min: 0, max: 360, step: 1 },
    { span: 24, formType: 'NUMBER', name: ['style', 'maximumClockDegree'], label: '最大时钟角', rules: true, min: 0, max: 360, step: 1 },
    { span: 24, formType: 'NUMBER', name: ['style', 'minimumConeDegree'], label: '最小锥角', rules: true, min: 0, max: 360, step: 1 },
    { span: 24, formType: 'NUMBER', name: ['style', 'maximumConeDegree'], label: '最大锥角', rules: true, min: 0, max: 360, step: 1 },
    { span: 24, formType: 'NUMBER', name: ['style', 'stackPartitions'], label: '竖向划分', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'slicePartitions'], label: '横向划分', rules: true },
    { span: 24, formType: 'RADIO', name: ['style', 'outline'], label: '是否衬色', rules: true, valueEnum: MappingData.IsEnabledBool },
    {
        span: 24, formType: 'COLOR', name: ['style', 'outlineColor'], label: '衬色颜色', rules: true,
        jugdeField: ['style', 'outlineColor'], jugdeValue: [true]
    },
    ...materialOptionsMapping,
    ...label__STYLE
]
// Todo 扇形(3个点)
const sector = [
    { span: 24, formType: 'TempPosition', name: 'position', label: '经纬度', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'diffHeight'], label: '立体高度', rules: true },
    { span: 24, formType: 'RADIO', name: ['style', 'clampToGround'], label: '是否贴地', rules: true, valueEnum: MappingData.IsYesBool },
    { span: 24, formType: 'NUMBER', name: ['style', 'radius'], label: '圆形半径', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'startAngle'], label: '开始角度', rules: true, min: 0, max: 360, step: 1 },
    { span: 24, formType: 'NUMBER', name: ['style', 'endAngle'], label: '结束角度', rules: true, min: 0, max: 360, step: 1 },
    { span: 24, formType: 'RADIO', name: ['style', 'noCenter'], label: '不连中心', rules: true, valueEnum: MappingData.IsYesBool },
    { span: 24, formType: 'RADIO', name: ['style', 'outline'], label: '是否衬色', rules: true, valueEnum: MappingData.IsEnabledBool },
    {
        span: 24, formType: 'COLOR', name: ['style', 'outlineColor'], label: '衬色颜色', rules: true,
        jugdeField: ['style', 'outline'], jugdeValue: [true]
    },
    {
        span: 24, formType: 'NUMBER', name: ['style', 'outlineWidth'], label: '衬色宽度', rules: true,
        jugdeField: ['style', 'outline'], jugdeValue: [true]
    },
    ...distanceDisplayConditionMapping__STYLE,
    ...materialOptionsMapping,
    ...label__STYLE
]
// Todo 正多边形
const regular = [
    { span: 24, formType: 'TempPosition', name: 'position', label: '经纬度', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'diffHeight'], label: '立体高度', rules: true },
    { span: 24, formType: 'RADIO', name: ['style', 'clampToGround'], label: '是否贴地', rules: true, valueEnum: MappingData.IsYesBool },
    { span: 24, formType: 'NUMBER', name: ['style', 'border'], label: '边角数量', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'radius'], label: '元素半径', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'startAngle'], label: '旋转角度', rules: true, min: 0, max: 360, step: 1 },
    { span: 24, formType: 'RADIO', name: ['style', 'hasShadows'], label: '是否阴影', rules: true, valueEnum: MappingData.IsYesBool },
    { span: 24, formType: 'RADIO', name: ['style', 'outline'], label: '是否衬色', rules: true, valueEnum: MappingData.IsEnabledBool },
    {
        span: 24, formType: 'COLOR', name: ['style', 'outlineColor'], label: '衬色颜色', rules: true,
        jugdeField: ['style', 'outline'], jugdeValue: [true]
    },
    {
        span: 24, formType: 'NUMBER', name: ['style', 'outlineWidth'], label: '衬色宽度', rules: true,
        jugdeField: ['style', 'outline'], jugdeValue: [true]
    },
    ...distanceDisplayConditionMapping__STYLE,
    ...materialOptionsMapping,
    ...label__STYLE
]

// Todo 线
const polylineP = [
    { span: 24, formType: 'NUMBER', name: ['style', 'width'], label: '线条宽度', rules: true },
    { span: 24, formType: 'RADIO', name: ['style', 'hasShadows'], label: '是否阴影', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'closure'], label: '是否闭合', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'clampToGround'], label: '是否贴地', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'depthFail'], label: '是否遮挡', rules: true, valueEnum: MappingData.IsEnabledBool },
    {
        span: 24, formType: 'COLOR', name: ['style', 'depthFailColor'], label: '遮挡颜色', rules: true,
        jugdeField: ['style', 'depthFail'], jugdeValue: [true]
    },
    ...distanceDisplayConditionMapping__STYLE,
    ...materialOptionsMapping,
    ...label__STYLE
]

// Todo 曲线
const curve = [
    { span: 24, formType: 'NUMBER', name: ['style', 'width'], label: '线条宽度', rules: true },
    { span: 24, formType: 'RADIO', name: ['style', 'hasShadows'], label: '是否阴影', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'closure'], label: '是否闭合', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'clampToGround'], label: '是否贴地', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'depthFail'], label: '是否遮挡', rules: true, valueEnum: MappingData.IsEnabledBool },
    {
        span: 24, formType: 'COLOR', name: ['style', 'depthFailColor'], label: '遮挡颜色', rules: true,
        jugdeField: ['style', 'depthFail'], jugdeValue: [true]
    },
    ...distanceDisplayConditionMapping__STYLE,
    ...materialOptionsMapping,
    ...label__STYLE
]
// Todo 管道线
const polylineVolumeP = [
    { span: 24, formType: 'RADIO', name: ['style', 'shape'], label: '形状类型', rules: true, valueEnum: MappingData.mars3d__shape },
    { span: 24, formType: 'NUMBER', name: ['style', 'radius'], label: '管道半径', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'thicknes'], label: '管道厚度', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'slices'], label: '管道边数', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'startAngle'], label: '开始角度', rules: true, min: 0, max: 360, step: 1 },
    { span: 24, formType: 'NUMBER', name: ['style', 'endAngle'], label: '结束角度', rules: true, min: 0, max: 360, step: 1 },
    { span: 24, formType: 'NUMBER', name: ['style', 'vscale'], label: '垂直缩放', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'hscale'], label: '水平缩放', rules: true },
    { span: 24, formType: 'RADIO', name: ['style', 'hasShadows'], label: '是否阴影', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'clampToGround'], label: '是否贴地', rules: true, valueEnum: MappingData.IsEnabledBool },
    ...materialOptionsMapping,
    ...label__STYLE
]
// Todo 走廊
const corridorP = [
    { span: 24, formType: 'NUMBER', name: ['style', 'width'], label: '走廊宽度', rules: true },
    { span: 24, formType: 'RADIO', name: ['style', 'cornerType'], label: '边角样式', rules: true, valueEnum: MappingData.mars3d__cornerType },
    { span: 24, formType: 'RADIO', name: ['style', 'outline'], label: '是否边框', rules: true, valueEnum: MappingData.IsEnabledBool },
    {
        span: 24, formType: 'COLOR', name: ['style', 'outlineColor'], label: '边框颜色', rules: true,
        jugdeField: ['style', 'outline'], jugdeValue: [true]
    },
    { span: 24, formType: 'RADIO', name: ['style', 'hasShadows'], label: '是否阴影', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'clampToGround'], label: '是否贴地', rules: true, valueEnum: MappingData.IsEnabledBool },
    ...materialOptionsMapping,
    ...label__STYLE
]
// Todo 道路(无法编辑)
const road = [
    { span: 24, formType: 'NUMBER', name: ['style', 'width'], label: '道路宽度', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'height'], label: '道路高度', rules: true },
    { span: 24, formType: 'RADIO', name: ['style', 'axisY'], label: '横竖切换', rules: true, valueEnum: MappingData.IsEnabledBool },
]
// Todo 面
const polygonP = [
    { span: 24, formType: 'NUMBER', name: ['style', 'diffHeight'], label: '立体高度', rules: true },
    { span: 24, formType: 'RADIO', name: ['style', 'hasShadows'], label: '是否阴影', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'clampToGround'], label: '是否贴地', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'outline'], label: '是否边框', rules: true, valueEnum: MappingData.IsEnabledBool },
    {
        span: 24, formType: 'COLOR', name: ['style', 'outlineColor'], label: '边框颜色', rules: true,
        jugdeField: ['style', 'outline'], jugdeValue: [true]
    },
    ...materialOptionsMapping,
    ...label__STYLE
]
// Todo 攻击箭头
const attackArrow = [
    { span: 24, formType: 'NUMBER', name: ['style', 'diffHeight'], label: '立体高度', rules: true },
    { span: 24, formType: 'RADIO', name: ['style', 'hasShadows'], label: '是否阴影', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'clampToGround'], label: '是否贴地', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'outline'], label: '是否边框', rules: true, valueEnum: MappingData.IsEnabledBool },
    {
        span: 24, formType: 'COLOR', name: ['style', 'outlineColor'], label: '边框颜色', rules: true,
        jugdeField: ['style', 'outline'], jugdeValue: [true]
    },
    {
        span: 24, formType: 'COLOR', name: ['style', 'outlineWidth'], label: '边框宽度', rules: true,
        jugdeField: ['style', 'outline'], jugdeValue: [true]
    },
    ...distanceDisplayConditionMapping__STYLE,
    ...materialOptionsMapping,
    ...label__STYLE
]
// Todo 攻击箭头(平尾)
const attackArrowPW = [
    { span: 24, formType: 'NUMBER', name: ['style', 'diffHeight'], label: '立体高度', rules: true },
    { span: 24, formType: 'RADIO', name: ['style', 'hasShadows'], label: '是否阴影', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'clampToGround'], label: '是否贴地', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'outline'], label: '是否边框', rules: true, valueEnum: MappingData.IsEnabledBool },
    {
        span: 24, formType: 'COLOR', name: ['style', 'outlineColor'], label: '边框颜色', rules: true,
        jugdeField: ['style', 'outline'], jugdeValue: [true]
    },
    {
        span: 24, formType: 'COLOR', name: ['style', 'outlineWidth'], label: '边框宽度', rules: true,
        jugdeField: ['style', 'outline'], jugdeValue: [true]
    },
    ...distanceDisplayConditionMapping__STYLE,
    ...materialOptionsMapping,
    ...label__STYLE
]
// Todo 攻击箭头(燕尾)
const attackArrowYW = [
    { span: 24, formType: 'NUMBER', name: ['style', 'diffHeight'], label: '立体高度', rules: true },
    { span: 24, formType: 'RADIO', name: ['style', 'hasShadows'], label: '是否阴影', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'clampToGround'], label: '是否贴地', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'outline'], label: '是否边框', rules: true, valueEnum: MappingData.IsEnabledBool },
    {
        span: 24, formType: 'COLOR', name: ['style', 'outlineColor'], label: '边框颜色', rules: true,
        jugdeField: ['style', 'outline'], jugdeValue: [true]
    },
    {
        span: 24, formType: 'COLOR', name: ['style', 'outlineWidth'], label: '边框宽度', rules: true,
        jugdeField: ['style', 'outline'], jugdeValue: [true]
    },
    ...distanceDisplayConditionMapping__STYLE,
    ...materialOptionsMapping,
    ...label__STYLE
]
// Todo 双箭头(钳击)
const doubleArrow = [
    { span: 24, formType: 'NUMBER', name: ['style', 'diffHeight'], label: '立体高度', rules: true },
    { span: 24, formType: 'RADIO', name: ['style', 'hasShadows'], label: '是否阴影', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'clampToGround'], label: '是否贴地', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'outline'], label: '是否边框', rules: true, valueEnum: MappingData.IsEnabledBool },
    {
        span: 24, formType: 'COLOR', name: ['style', 'outlineColor'], label: '边框颜色', rules: true,
        jugdeField: ['style', 'outline'], jugdeValue: [true]
    },
    {
        span: 24, formType: 'COLOR', name: ['style', 'outlineWidth'], label: '边框宽度', rules: true,
        jugdeField: ['style', 'outline'], jugdeValue: [true]
    },
    ...distanceDisplayConditionMapping__STYLE,
    ...materialOptionsMapping,
    ...label__STYLE
]
// Todo 直箭头(2个点)
const fineArrow = [
    { span: 24, formType: 'NUMBER', name: ['style', 'diffHeight'], label: '立体高度', rules: true },
    { span: 24, formType: 'RADIO', name: ['style', 'hasShadows'], label: '是否阴影', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'clampToGround'], label: '是否贴地', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'outline'], label: '是否边框', rules: true, valueEnum: MappingData.IsEnabledBool },
    {
        span: 24, formType: 'COLOR', name: ['style', 'outlineColor'], label: '边框颜色', rules: true,
        jugdeField: ['style', 'outline'], jugdeValue: [true]
    },
    {
        span: 24, formType: 'COLOR', name: ['style', 'outlineWidth'], label: '边框宽度', rules: true,
        jugdeField: ['style', 'outline'], jugdeValue: [true]
    },
    ...distanceDisplayConditionMapping__STYLE,
    ...materialOptionsMapping,
    ...label__STYLE
]
// Todo 燕尾直箭头(2个点)
const fineArrowYW = [
    { span: 24, formType: 'NUMBER', name: ['style', 'diffHeight'], label: '立体高度', rules: true },
    { span: 24, formType: 'RADIO', name: ['style', 'hasShadows'], label: '是否阴影', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'clampToGround'], label: '是否贴地', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'outline'], label: '是否边框', rules: true, valueEnum: MappingData.IsEnabledBool },
    {
        span: 24, formType: 'COLOR', name: ['style', 'outlineColor'], label: '边框颜色', rules: true,
        jugdeField: ['style', 'outline'], jugdeValue: [true]
    },
    {
        span: 24, formType: 'COLOR', name: ['style', 'outlineWidth'], label: '边框宽度', rules: true,
        jugdeField: ['style', 'outline'], jugdeValue: [true]
    },
    ...distanceDisplayConditionMapping__STYLE,
    ...materialOptionsMapping,
    ...label__STYLE
]
// Todo 直箭头(3个点)
const straightArrow = [
    { span: 24, formType: 'NUMBER', name: ['style', 'diffHeight'], label: '立体高度', rules: true },
    { span: 24, formType: 'RADIO', name: ['style', 'hasShadows'], label: '是否阴影', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'clampToGround'], label: '是否贴地', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'outline'], label: '是否边框', rules: true, valueEnum: MappingData.IsEnabledBool },
    {
        span: 24, formType: 'COLOR', name: ['style', 'outlineColor'], label: '边框颜色', rules: true,
        jugdeField: ['style', 'outline'], jugdeValue: [true]
    },
    {
        span: 24, formType: 'COLOR', name: ['style', 'outlineWidth'], label: '边框宽度', rules: true,
        jugdeField: ['style', 'outline'], jugdeValue: [true]
    },
    ...distanceDisplayConditionMapping__STYLE,
    ...materialOptionsMapping,
    ...label__STYLE
]
// Todo 弓形面(3个点)
const lune = [
    { span: 24, formType: 'NUMBER', name: ['style', 'diffHeight'], label: '立体高度', rules: true },
    { span: 24, formType: 'RADIO', name: ['style', 'hasShadows'], label: '是否阴影', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'clampToGround'], label: '是否贴地', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'outline'], label: '是否边框', rules: true, valueEnum: MappingData.IsEnabledBool },
    {
        span: 24, formType: 'COLOR', name: ['style', 'outlineColor'], label: '边框颜色', rules: true,
        jugdeField: ['style', 'outline'], jugdeValue: [true]
    },
    {
        span: 24, formType: 'COLOR', name: ['style', 'outlineWidth'], label: '边框宽度', rules: true,
        jugdeField: ['style', 'outline'], jugdeValue: [true]
    },
    ...distanceDisplayConditionMapping__STYLE,
    ...materialOptionsMapping,
    ...label__STYLE
]
// Todo 等腰三角形(3个点)
const isosTriangle = [
    { span: 24, formType: 'NUMBER', name: ['style', 'diffHeight'], label: '立体高度', rules: true },
    { span: 24, formType: 'RADIO', name: ['style', 'hasShadows'], label: '是否阴影', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'clampToGround'], label: '是否贴地', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'outline'], label: '是否边框', rules: true, valueEnum: MappingData.IsEnabledBool },
    {
        span: 24, formType: 'COLOR', name: ['style', 'outlineColor'], label: '边框颜色', rules: true,
        jugdeField: ['style', 'outline'], jugdeValue: [true]
    },
    {
        span: 24, formType: 'COLOR', name: ['style', 'outlineWidth'], label: '边框宽度', rules: true,
        jugdeField: ['style', 'outline'], jugdeValue: [true]
    },
    ...distanceDisplayConditionMapping__STYLE,
    ...materialOptionsMapping,
    ...label__STYLE
]
// Todo 闭合曲面(3个点)
const closeVurve = [
    { span: 24, formType: 'NUMBER', name: ['style', 'diffHeight'], label: '立体高度', rules: true },
    { span: 24, formType: 'RADIO', name: ['style', 'hasShadows'], label: '是否阴影', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'clampToGround'], label: '是否贴地', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'outline'], label: '是否边框', rules: true, valueEnum: MappingData.IsEnabledBool },
    {
        span: 24, formType: 'COLOR', name: ['style', 'outlineColor'], label: '边框颜色', rules: true,
        jugdeField: ['style', 'outline'], jugdeValue: [true]
    },
    {
        span: 24, formType: 'COLOR', name: ['style', 'outlineWidth'], label: '边框宽度', rules: true,
        jugdeField: ['style', 'outline'], jugdeValue: [true]
    },
    ...distanceDisplayConditionMapping__STYLE,
    ...materialOptionsMapping,
    ...label__STYLE
]
// Todo 集结地(3个点)
const gatheringPlace = [
    { span: 24, formType: 'NUMBER', name: ['style', 'diffHeight'], label: '立体高度', rules: true },
    { span: 24, formType: 'RADIO', name: ['style', 'hasShadows'], label: '是否阴影', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'clampToGround'], label: '是否贴地', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'outline'], label: '是否边框', rules: true, valueEnum: MappingData.IsEnabledBool },
    {
        span: 24, formType: 'COLOR', name: ['style', 'outlineColor'], label: '边框颜色', rules: true,
        jugdeField: ['style', 'outline'], jugdeValue: [true]
    },
    {
        span: 24, formType: 'COLOR', name: ['style', 'outlineWidth'], label: '边框宽度', rules: true,
        jugdeField: ['style', 'outline'], jugdeValue: [true]
    },
    ...distanceDisplayConditionMapping__STYLE,
    ...materialOptionsMapping,
    ...label__STYLE
]
// Todo 平面
const planeP = [
    { span: 24, formType: 'TempPosition', name: 'position', label: '经纬度', rules: true },
    { span: 24, formType: 'RADIO', name: ['style', 'plane_normal'], label: '方向', rules: true, valueEnum: MappingData.mars3d__planeNormal },
    { span: 24, formType: 'NUMBER', name: ['style', 'dimensions_x'], label: '长度', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'dimensions_y'], label: '宽度', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'heading'], label: '方向角', rules: true, min: 0, max: 360, step: 1 },
    { span: 24, formType: 'NUMBER', name: ['style', 'pitch'], label: '俯仰角', rules: true, min: 0, max: 360, step: 1 },
    { span: 24, formType: 'NUMBER', name: ['style', 'roll'], label: '翻滚角', rules: true, min: 0, max: 360, step: 1 },
    { span: 24, formType: 'RADIO', name: ['style', 'outline'], label: '是否边框', rules: true, valueEnum: MappingData.IsEnabledBool },
    {
        span: 24, formType: 'COLOR', name: ['style', 'outlineColor'], label: '边框颜色', rules: true,
        jugdeField: ['style', 'outline'], jugdeValue: [true]
    },
    ...materialOptionsMapping,
    ...label__STYLE
]
// Todo 墙
const wallP = [
    { span: 24, formType: 'NUMBER', name: ['style', 'diffHeight'], label: '墙高', rules: true },
    { span: 24, formType: 'RADIO', name: ['style', 'closure'], label: '是否闭合', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'hasShadows'], label: '是否阴影', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'outline'], label: '是否边框', rules: true, valueEnum: MappingData.IsEnabledBool },
    {
        span: 24, formType: 'COLOR', name: ['style', 'outlineColor'], label: '边框颜色', rules: true,
        jugdeField: ['style', 'outline'], jugdeValue: [true]
    },
    ...materialOptionsMapping,
    ...label__STYLE
]
// Todo 扩散墙(无法编辑)
const diffuseWall = [
    { span: 24, formType: 'NUMBER', name: ['style', 'diffHeight'], label: '墙高', rules: true },
    { span: 24, formType: 'COLOR', name: ['style', 'color'], label: '颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'speed'], label: '速度', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'maxScale'], label: '扩散比例', rules: true },
]
// Todo 有厚度的围墙
const thickWall = [
    { span: 24, formType: 'NUMBER', name: ['style', 'diffHeight'], label: '墙高', rules: true },
    { span: 24, formType: 'NUMBER', name: ['style', 'width'], label: '墙厚', rules: true },
    { span: 24, formType: 'RADIO', name: ['style', 'closure'], label: '是否闭合', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'hasShadows'], label: '是否阴影', rules: true, valueEnum: MappingData.IsEnabledBool },
    { span: 24, formType: 'RADIO', name: ['style', 'outline'], label: '是否边框', rules: true, valueEnum: MappingData.IsEnabledBool },
    {
        span: 24, formType: 'COLOR', name: ['style', 'outlineColor'], label: '边框颜色', rules: true,
        jugdeField: ['style', 'outline'], jugdeValue: [true]
    },
    ...materialOptionsMapping,
    ...label__STYLE
]

// TODO 电子围栏
const FenceConfig = [
    { span: 24, formType: 'HIDDEN', name: 'uuid', label: '标识', rules: true },
    { span: 24, formType: 'INPUT', name: 'tableName', label: '围栏名称', rules: true },
    { span: 24, formType: 'COLOR', name: 'color', label: '围栏颜色', rules: true },
    { span: 24, formType: 'NUMBER', name: 'width', label: '围栏宽度', rules: true },
]


export const Marsd3dConfig = {
    SceneBaseConfig,
    SceneGlobeConfig,
    SceneCameraController,
    SceneTerrainConfig,
    SceneWeatherConfig,
    SceneColourConfig,

    BoundaryBorderConfig,
    BoundaryCoverConfig,
    BoundaryLineConfig,
    BoundaryWallConfig,

    ElementListFields,
    FenceConfig,

    modelP,
    labelP,
    pointP,
    billboardP,
    tetrahedron,
    div,
    divLightPoint,
    divUpLabel,
    divBoderLabel,
    boxP,
    cylinderP,
    lightCone,
    circleP,
    ellipsoidP,
    sector,
    regular,
    polylineP,
    curve,
    polylineVolumeP,
    corridorP,
    road,
    polygonP,
    attackArrow,
    attackArrowPW,
    attackArrowYW,
    doubleArrow,
    fineArrow,
    fineArrowYW,
    straightArrow,
    lune,
    isosTriangle,
    closeVurve,
    gatheringPlace,
    planeP,
    wallP,
    diffuseWall,
    thickWall,
}